package com.workstudy.wstudy.service.impl;

import java.util.List;

import com.workstudy.common.core.domain.entity.SysUser;
import com.workstudy.common.utils.DateUtils;
import com.workstudy.wstudy.domain.WstTimeModel;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.workstudy.wstudy.mapper.WstTimeMapper;
import com.workstudy.wstudy.domain.WstTime;
import com.workstudy.wstudy.service.IWstTimeService;
import com.workstudy.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;

/**
 * 时间管理Service业务层处理
 * 
 * @author sun
 * @date 2021-05-05
 */
@Service
public class WstTimeServiceImpl implements IWstTimeService 
{
    @Autowired
    private WstTimeMapper wstTimeMapper;

    /**
     * 查询时间管理
     * 
     * @param timeId 时间管理ID
     * @return 时间管理
     */
    @Override
    public WstTime selectWstTimeById(Long timeId)
    {
        return wstTimeMapper.selectWstTimeById(timeId);
    }

    /**
     * 查询时间管理列表
     * 
     * @param wstTime 时间管理
     * @return 时间管理
     */
    @Override
    public List<WstTime> selectWstTimeList(WstTime wstTime)
    {
        return wstTimeMapper.selectWstTimeList(wstTime);
    }

    /**
     * 新增时间管理
     * 
     * @param wstTime 时间管理
     * @return 结果
     */
    @Override
    public int insertWstTime(WstTime wstTime)
    {
        wstTime.setCreateTime(DateUtils.getNowDate());
        return wstTimeMapper.insertWstTime(wstTime);
    }

    @Override
    @Transactional
    public int insertWstTimeList(WstTimeModel list) {
        List<WstTime> times = list.getTimes();
        SysUser user = (SysUser) SecurityUtils.getSubject().getPrincipal();
        int row =0;
        for (WstTime t:times){
            t.setCreateUserId(user.getUserId());
            t.setCreateBy(user.getUserName());
            t.setCreateTime(DateUtils.getNowDate());
            row+=wstTimeMapper.insertWstTime(t);
        }
        return row;
    }

    /**
     * 修改时间管理
     * 
     * @param wstTime 时间管理
     * @return 结果
     */
    @Override
    public int updateWstTime(WstTime wstTime)
    {
        wstTime.setUpdateTime(DateUtils.getNowDate());
        return wstTimeMapper.updateWstTime(wstTime);
    }

    /**
     * 删除时间管理对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteWstTimeByIds(String ids)
    {
        return wstTimeMapper.deleteWstTimeByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除时间管理信息
     * 
     * @param timeId 时间管理ID
     * @return 结果
     */
    @Override
    public int deleteWstTimeById(Long timeId)
    {
        return wstTimeMapper.deleteWstTimeById(timeId);
    }
}
